<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="zh" xml:lang="zh" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<head>
<META http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Task Descriptor: 确定设计机制</title>
<meta name="uma.type" content="TaskDescriptor">
<meta name="uma.name" content="identify_design_mechanisms">
<meta name="uma.presentationName" content="确定设计机制">
<meta name="uma.guid" content="_SLk9EUocEdqrjq4i3fchvA">
<meta name="element_type" content="TaskDescriptor">
<meta name="filetype" content="description">
<meta name="role" content="">
<link rel="StyleSheet" href="./../../css/default.css" type="text/css">
<script src="./../../scripts/ContentPageResource.js" type="text/javascript" language="JavaScript"></script><script src="./../../scripts/ContentPageSection.js" type="text/javascript" language="JavaScript"></script><script src="./../../scripts/ContentPageSubSection.js" type="text/javascript" language="JavaScript"></script><script src="./../../scripts/ActivityTreeTable.js" type="text/javascript" language="JavaScript"></script><script src="./../../scripts/ProcessElementPage.js" type="text/javascript" language="JavaScript"></script><script src="./../../scripts/ContentPageToolbar.js" type="text/javascript" language="JavaScript"></script><script src="./../../scripts/contentPage.js" type="text/javascript" language="JavaScript"></script><script src="./../../scripts/processElementData.js" type="text/javascript" language="JavaScript"></script><script type="text/javascript" language="JavaScript">
					var defaultQueryStr = '?proc={002674F9-6511-4D15-8623-B761D8C48986}&path={002674F9-6511-4D15-8623-B761D8C48986},{F2160C54-F666-4736-9982-FC7F58F15FAD},_SLk9EUocEdqrjq4i3fchvA';
					var backPath = './../../';
					var imgPath = './../../images/';
					var nodeInfo=null;
					contentPage.preload(imgPath, backPath, nodeInfo, defaultQueryStr, true, true, false);
				</script>
</head>
<body>
<div id="breadcrumbs"></div>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td valign="top">
<div id="page-guid" value="_SLk9EUocEdqrjq4i3fchvA"></div>
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tr>
<td class="pageTitle" nowrap="true">Task Descriptor: 确定设计机制</td><td width="100%">
<div align="right" id="contentPageToolbar"></div>
</td><td width="100%" class="expandCollapseLink" align="right"><a name="mainIndex" href="./../../index.htm"></a><script language="JavaScript" type="text/javascript" src="./../../scripts/treebrowser.js"></script></td>
</tr>
</table>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td class="pageTitleSeparator"><img src="./../../images/shim.gif" alt="" title="" height="1"></td>
</tr>
</table>
<div class="overview">
<table width="97%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="50"><img src="./../../images/taskdes_lg_dgm32.gif" alt="" title=""></td><td>
<table class="overviewTable" border="0" cellspacing="0" cellpadding="0">
<tr>
<td valign="top">此任务描述了如何将分析机制优化为设计机制。</td>
</tr>
<tr>
<td>Based on Method Task: <a href="./../../rup/tasks/identify_design_mechanisms_9A197FBC.html" guid="{C7A26BD7-3820-48D9-830F-684C3AF155F9}">确定设计机制</a></td>
</tr>
</table>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">Relationships</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<th class="sectionTableHeading" scope="row">Roles</th><td class="sectionTableCell" width="30%"><span class="sectionTableCellHeading">Main:
								</span>
<ul>
<li>
<a href="./../../rup/capabilitypatterns/rup_software_architect_8B6C5D41.html" guid="_COWYtRi2Edq_uI8xTPML6g">软件设计人员</a>
</li>
</ul>
</td><td class="sectionTableCell" width="30%"><span class="sectionTableCellHeading">Additional:
								</span></td><td class="sectionTableCell"><span class="sectionTableCellHeading">Assisting:
								</span></td>
</tr>
<tr valign="top">
<th class="sectionTableHeading" scope="row">Inputs</th><td class="sectionTableCell" width="30%"><span class="sectionTableCellHeading">Mandatory:
								</span>
<ul>
<li>
<a href="./../../rup/capabilitypatterns/soa_service_model_67217F6C.html" guid="_ZQarcjbZEdqdbfmtFQj8qA">Service Model</a>
</li>
<li>
<a href="./../../rup/capabilitypatterns/rup_analysis_class_78886B56.html" guid="_ZQarcTbZEdqdbfmtFQj8qA">分析类</a>
</li>
</ul>
</td><td class="sectionTableCell" width="30%"><span class="sectionTableCellHeading">Optional:
								</span>
<ul>
<li>
<a href="./../../rup/capabilitypatterns/rup_supplementary_specification_4FFE3F60.html" guid="_COWYuRi2Edq_uI8xTPML6g">补充规范</a>
</li>
<li>
<a href="./../../rup/capabilitypatterns/rup_software_architecture_document_7A057157.html" guid="_COWYthi2Edq_uI8xTPML6g">软件架构文档</a>
</li>
<li>
<a href="./../../rup/capabilitypatterns/rup_design_model_84A35167.html" guid="_COWYtxi2Edq_uI8xTPML6g">设计模型</a>
</li>
</ul>
</td><td class="sectionTableCell"><span class="sectionTableCellHeading">External:
								</span>
<ul>
<li>None</li>
</ul>
</td>
</tr>
<tr valign="top">
<th class="sectionTableHeading" scope="row">Outputs</th><td class="sectionTableCell" colspan="3">
<ul>
<li>
<a href="./../../rup/capabilitypatterns/soa_service_model_67217F6C.html" guid="_ZQarcjbZEdqdbfmtFQj8qA">Service Model</a>
</li>
<li>
<a href="./../../rup/capabilitypatterns/rup_software_architecture_document_7A057157.html" guid="_COWYthi2Edq_uI8xTPML6g">软件架构文档</a>
</li>
<li>
<a href="./../../rup/capabilitypatterns/rup_design_model_84A35167.html" guid="_COWYtxi2Edq_uI8xTPML6g">设计模型</a>
</li>
</ul>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">Steps</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="sectionTableCell">
<div class="stepHeading"> 对分析机制的客户端分类</div>
<div class="stepContent">
<table class="stepTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td><a class="index" id="XE_analysis_mechanisms__categorizing" name="XE_analysis_mechanisms__categorizing" text="分类" key="分析机制（analysis mechanisms）"></a><a id="categorize clients" name="categorize clients"></a> 
<p>
    分析机制提供由<a class="elementLinkWithUserText" href="./../../rup/workproducts/rup_analysis_class_DAF7CE03.html" guid="{1E20603F-A5B8-42D5-BDBC-69DCE9C0FCDB}">分析类</a>使用的概念上的服务集合。它们为最终必须关心、但处于分析工作范围之外的相当复杂的行为提供方便的简单表达方式。它们的主要目的是允许我们捕获系统的这些尚待设计的服务的需求，而不必考虑服务提供者自身的细节。
</p>
<p>
    现在，必须开始优化在分析机制上收集的信息。执行步骤如下：
</p>
<p>
    <b>确定每个分析机制的客户端。</b> 浏览给定分析机制的所有客户端，查看它们对于该机制要求的特征。例如，许多<a class="elementLinkWithUserText" href="./../../rup/workproducts/rup_analysis_class_DAF7CE03.html" guid="{1E20603F-A5B8-42D5-BDBC-69DCE9C0FCDB}">分析类</a>会利用持久性机制，但它们对该机制的需求可能变化很大：将具有一千个持久实例的类与将具有四百万个持久实例的类的持久性需求有显著区别。类似地，其实例必须以低于一毫秒的速度响应实例数据的类与只通过特别查询和批处理报告应用程序访问其实例数据的类需要的持久性方法将是不同的。
</p>
<p>
    <b>确定每个分析机制的特征概要文件</b>。<b>特征概要文件</b>可能变化很大，提供不同等级的性能、覆盖区、安全性和经济成本等。每个分析机制都不同 －
    将有不同的特征适用于每个机制。多数机制将需要估计要管理的实例数量及其用预期字节数表示的预期大小。通过任何系统的大量数据的移动将产生必须处理的巨大性能问题。
</p>
<p>
    <b>按照客户端使用的特征概要文件，对客户端分组。</b>对客户端分组：这些客户端看来需要同一个分析机制，该机制具有相似的特征概要文件；基于每个这样的需要来确定设计机制。这些分组提供了对设计机制的初始划分。示例分析机制“进程间通信”可映射到设计机制“对象请求代理程序”。不同的特征概要文件将导致从同一个分析机制中产生不同的设计机制。分析中的简单持久性机制将产生设计中的多个持久性机制：内存中的持久性、基于文件、基于数据库和分发式等。设计机制是基于不同特征概要文件而对分析机制的优化。
</p></td>
</tr>
</table>
</div>
<div class="stepHeading"> 列出实现机制清单</div>
<div class="stepContent">
<table class="stepTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td><a class="index" id="XE_implementation_mechanism__inventorying" name="XE_implementation_mechanism__inventorying" text="列出清单" key="实现机制（implementation mechanism）"></a><a id="inventory impl mechanisms" name="inventory impl mechanisms"></a> 
<p>
    自下而上的进行并列出要处理的实现机制清单（请参阅<a class="elementLinkWithType" href="./../../rup/guidances/concepts/design_and_implementation_mechanisms_A37EAC7D.html" guid="6.131233324119695E-305">Concept: 设计和实现机制</a>）：
</p>
<ul>
    <li>
        由中间件产品或组件框架提供的机制。
    </li>
    <li>
        由操作系统提供的机制。
    </li>
    <li>
        由组件提供的机制。
    </li>
    <li>
        由类库提供的机制。
    </li>
    <li>
        旧代码（另请参阅：<a class="elementLinkWithType" href="./../../rup/tasks/incorporate_design_elements_D3C582B5.html" guid="{5C647173-4E32-4594-96A9-2548B47722FA}">Task: 合并现有设计元素</a>）
    </li>
    <li>
        特殊用途包：GUI 构造器、地理信息系统、DBMS 等。
    </li>
</ul>
<p>
    确定什么场合可使用现有实现机制以及什么场合需要建立新的实现机制。
</p></td>
</tr>
</table>
</div>
<div class="stepHeading"> 将设计机制映射到实现机制</div>
<div class="stepContent">
<table class="stepTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td><a class="index" id="XE_implementation_mechanism__mapping_from_design_mechanisms" name="XE_implementation_mechanism__mapping_from_design_mechanisms" text="从设计机制进行映射" key="实现机制（implementation mechanism）"></a><a class="index" id="XE_design_mechanism__mapping_to_implementation_mechanisms" name="XE_design_mechanism__mapping_to_implementation_mechanisms" text="映射到实现机制" key="设计机制（design mechanism）"></a><a id="Map Design Mechanisms to Implementation Mechanisms" name="Map Design Mechanisms to Implementation Mechanisms"></a> 
<p>
    设计机制提供实现机制的抽象，将分析机制和实现机制之间的差距衔接起来。在设计期间抽象架构机制的使用可使我们考虑如何提供架构机制，而不会将手边的问题与特定机制的细节问题相混淆。它也可使我们可能用一个特定实现机制去替换另一个，而不会对设计有不利影响。
</p>
<p>
    <b>确定特征范围。</b> 用对设计机制确定的特征来确定用于候选实现机制的合理、经济或可行的价值范围。
</p>
<p>
    <b>考虑所购组件的购买成本</b>。 对于候选实现机制，除了纯粹的技术条件，还请考虑购买或许可成本、产品的成熟度、与供应商的关系、支持等。
</p>
<p>
    <b>搜索合适的组件，或自制组件。</b> 通常，您将会发现对于某些设计机制，不存在明显合适的实现机制；这将会引发搜索合适的产品或确定内部开发的必要性。您也可能发现某些实现机制根本不可用。<br />
    <br />
    实现机制的选择不仅基于对技术特征的良好匹配，而且基于非技术特征（如成本）。部分选择可能是<b>临时的</b>；几乎所有的选择都带有一些风险：性能、健壮性和可伸缩性几乎始终是要考虑的问题并必须通过评估、探索性地建立原型或包含在架构原型中来验证。
</p></td>
</tr>
</table>
</div>
<div class="stepHeading"> 记录架构机制</div>
<div class="stepContent">
<table class="stepTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td><a class="index" id="XE_architectural_mechanism__documenting" name="XE_architectural_mechanism__documenting" text="记录" key="架构机制（architectural mechanism）"></a><a id="document mechanisms" name="document mechanisms"></a> 
<p>
    在此任务中，软件架构师的角色是通过建立或集成机制并验证它们有效，来确定和验证这些机制，然后将这些机制一致地施加到剩余的系统设计中。
    软件架构师角色与流程工程师角色协作，以便在特定于项目的设计指南中记录机制和有关机制使用的详细信息。请参阅<a class="elementLinkWithUserText" href="./../../rup/tasks/prepare_project_specific_guidelines_A9AD00DB.html" guid="{1E706674-C1E7-4F8D-BF06-35FFE49C5E42}">任务：准备特定于项目的指南</a>。分析机制与设计机制以及实现机制之间的关系（或映射），还有这些选择的相关理由应记录在<a class="elementLink" href="./../../rup/workproducts/rup_software_architecture_document_C367485C.html" guid="{6F49641A-ED10-47B5-9E5D-3F90A6BF3006}">软件架构文档</a>中。这些机制本身是设计模型元素（如设计包、设计类和设计子系统），作为各自设计任务的一部分在<a class="elementLinkWithType" href="./../../rup/workproducts/rup_design_model_2830034D.html" guid="{8CDAEAD4-5E84-4F50-87FD-3240ED047DE7}">Artifact: 设计模型</a>中有详细描述。
</p><br />
<br /></td>
</tr>
</table>
</div>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">Properties</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<th class="sectionTableHeading" scope="row" id="property_Multiple Occurrences" abbr="Multiple Occurrences">Multiple Occurrences</th><td class="sectionTableCell" align="left" headers="property_Multiple Occurrences"><img width="20" height="15" alt="" title="" src="./../../images/indent.gif"></td>
</tr>
<tr valign="top">
<th class="sectionTableHeading" scope="row" id="property_Event Driven" abbr="Event Driven">Event Driven</th><td class="sectionTableCell" align="left" headers="property_Event Driven"><img width="20" height="15" alt="" title="" src="./../../images/indent.gif"></td>
</tr>
<tr valign="top">
<th class="sectionTableHeading" scope="row" id="property_Ongoing" abbr="Ongoing">Ongoing</th><td class="sectionTableCell" align="left" headers="property_Ongoing"><img width="20" height="15" alt="" title="" src="./../../images/indent.gif"></td>
</tr>
<tr valign="top">
<th class="sectionTableHeading" scope="row" id="property_Optional" abbr="Optional">Optional</th><td class="sectionTableCell" align="left" headers="property_Optional"><img width="20" height="15" alt="" title="" src="./../../images/indent.gif"></td>
</tr>
<tr valign="top">
<th class="sectionTableHeading" scope="row" id="property_Planned" abbr="Planned">Planned</th><td class="sectionTableCell" align="left" headers="property_Planned"><img width="20" height="15" alt="" title="" src="./../../images/indent.gif"></td>
</tr>
<tr valign="top">
<th class="sectionTableHeading" scope="row" id="property_Repeatable" abbr="Repeatable">Repeatable</th><td class="sectionTableCell" align="left" headers="property_Repeatable"><img width="20" height="15" alt="" title="" src="./../../images/indent.gif"></td>
</tr>
</table>
</div>
<table class="copyright" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="copyright">Copyright &copy; 2008 版权所有 东软集团股份有限公司&nbsp; 联系邮箱:<a href="mailto:tcoe@neusoft.com">tcoe@neusoft.com</a></td>
</tr>
</table>
</td>
</tr>
</table>
</body>
<script language="JavaScript" type="text/javascript">
					contentPage.onload();
					contentPage.processPage.fixDescriptorLinks();
				</script>
</html>
